import { initMixin } from './init.js'
import { lifecycleMixin } from './lifecycle.js'
import { renderMixin } from './render.js'
import { initGlobalAPI } from './global-api/index.js'
import { stateMixin } from './state.js'

function Vue(options) {
  this._init(options)
}

debugger

// 此代码有利于代码分解
// 在 Vue 实例上挂载一些方法 _init; $mount;
initMixin(Vue)

// 混入 $watch
stateMixin(Vue)

// 混入 _render; $nextTick; _c; _v; _s
renderMixin(Vue)

// 混入 _update
lifecycleMixin(Vue)

// 初始化全局API: mixin; extend
initGlobalAPI(Vue)

export default Vue
